iT邦幫忙

2025 iThome 鐵人賽

DAY 18
0
生成式 AI

Swift一下就會了系列 第 18

Day 18 留言板 3

  • 分享至 

  • xImage
  •  

TableView這個元件可以讓很多不同的資料一次顯示出來。

不過,系統預設的 UITableViewCell 功能有限,只能顯示單一標籤或圖示。如果我們想要自訂樣式,就需要另外建立一個自訂的 TableViewCell

建立 UITableViewCell

步驟如下:
1.在 Xcode → New File → Cocoa Touch Class
2.選擇 Subclass of:UITableViewCell
3.勾選 Also create XIB file,讓它同時幫我們產生 .xib 介面檔案。
https://ithelp.ithome.com.tw/upload/images/20251002/20178746bPBuqKkAOk.png

我們只需要一個 Label 來顯示留言內容即可。
https://ithelp.ithome.com.tw/upload/images/20251002/20178746ANXUdSSlRO.png

@IBOutlet weak var lbData: UILabel!

一樣去做宣告。

為了讓留言可以顯示多行文字,而不是只顯示一行,我們在 awakeFromNib() 裡加入設定:

    // 讓TableView不限行顯示
    override func awakeFromNib(){
        super.awakeFromNib()
        lbData.numberOfLines = 0
    }

這樣一來,即使留言內容很長,也可以完整顯示。

TableView 中,Cell 會被重複使用以節省記憶體,因此我們需要設定一個識別名稱:

// 讓TableViewCell可以重複使用
    static let identifier = "MainTableViewCell"

之後在 Controller 中註冊與取用這個 Cell 時,就能透過這個識別字串找到它。

由於 Cell 是重複利用的,舊資料可能會殘留在畫面上,所以我們需要在 setSelected 裡面做清理或額外設定:

// 重複使用前先清空內容
    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

結語

我們今天做好了 UITableViewCell 來顯示留言內容。


上一篇
Day 17 留言板 2
下一篇
Day 19 留言板 4
系列文
Swift一下就會了21
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言